module.exports = (app) => {
  const { dict } = app.config
  const { Schema, createModel, getModelName, formatDate, pre } = app.jax.mongoose
  const modelName = getModelName(__filename)

  const schema = new Schema({
    roleName: String, // 角色名称
    roleDesc: String, // 角色描述
    isAdmin: { type: Boolean, default: false }, // 管理员角色(管理员拥有所属系统权限)
    isSuperAdmin: { type: Boolean, default: false }, // 超级管理员
    menuIds: [Schema.Types.ObjectId], // 菜单ID（非管理员需要控制菜单）
    // halfMenuIds: [Schema.Types.ObjectId], // 半选菜单ID（非管理员需要控制菜单）
    parentId: Schema.Types.ObjectId, // 上级ID
    sourceId: { type: Number, default: 0 }, // 来源ID(集团、项目、商家)
    sourceType: String, // 数据来源(请看字典)
    systemType: { type: String, default: 'admin' }, // 所属系统(请看字典)
    isSystem: Boolean, // 系统内置
  })

  // 所属系统描述
  schema.virtual('systemTypeDesc').get(function () {
    return dict.systemType[this.systemType] || '未知'
  })

  const Model = createModel(modelName, schema)

  return Model
}
